import mpmath
from mpmath import *



def propagator(s1_plus, s1_minus, s0_plus, s0_minus, w0, stepsize):
        temp = s1_plus.transpose_conj() * mpmath.expm(mpmath.mpc(0, -1) * w0 * stepsize) * s0_plus * s0_minus.transpose_conj() * mpmath.expm(mpmath.mpc(0, +1) * w0 * stepsize) * s1_minus
        temp = temp.tolist()[0][0]
        return complex(re(temp), im(temp))
